#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN=100005;
int n,m;
int a[MAXN];
int on[MAXN];
int off[MAXN];
int main(void){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    a[n+1]=m;
    for(int i=1;i<=n+1;i++){
        if(i%2){
            on[i]=on[i-1]+a[i]-a[i-1];
            off[i]=off[i-1];
        }
        else{
            on[i]=on[i-1];
            off[i]=off[i-1]+a[i]-a[i-1];
        }
    }
    int ans=on[n+1];
    for(int i=1;i<=n;i++){
        int tmp=0;
        //这个点左或右可以插入
        if(a[i]-a[i-1]>1 || a[i+1]-a[i]>1){
            if(i%2){
                //插入在i点的左边 （前面开的时间少了1）
                tmp=on[i]-1+off[n+1]-off[i];
            }
            else{
                //插入在i点的左边 （前面关的时间少了1）
                tmp=on[i]+1+off[n+1]-off[i];
            }
        }
        ans=max(ans,tmp);
    }
    printf("%d\n",ans);
    return 0;
}
